﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace Snake
{
    /// <summary>
    /// A játékost reprezentáló osztály
    /// </summary>
	public class Player
	{
        /// <summary>
        /// A játékos pontjait tároló változó
        /// </summary>
		public int points { get; set; }

        /// <summary>
        /// A játékos nevét tároló változó
        /// </summary>
		public string name { get; set; }

        /// <summary>
        /// Magát a kígyót tároló objektum.
        /// </summary>
		public snakeObject snake { get; set; }

        /// <summary>
        /// A játékos adatait szöveggé konvertáló függvény
        /// </summary>
        /// <returns>Az átkonvertált szöveggel tér vissza</returns>
		public override string ToString()
		{
			return name + " : " + points.ToString() + " pont";
		}

        /// <summary>
        /// Szövegliterálból dolgozza fel az adatokat ez a függvény, majd ezekből az adatokból készíti el a Player osztályt.
        /// </summary>
        /// <param name="str">A feldolgozandó szöveg</param>
        /// <returns>A feldolgozott Player osztállyal tér vissza.</returns>
		public static Player Parse(string str)
		{
			Regex regex = new Regex(@"(?<name>[,\._ \w\d]*) : (?<point>\d+) pont");
			Match match = regex.Match(str);
			if (match.Success)
			{
				Player player = new Player();
				player.name = match.Groups["name"].Value;
				player.points = int.Parse(match.Groups["point"].Value);
				return player;
			}
			else
			{
				throw new Exception("Hiba a játékos feldolgozásánál!");
			}
		}
	}
}